// 服务器端
#include "Comm.hpp"
int main()
{
    // 创建命名管道
    Fifo fifo(Path);
    int rfd = open(Path, O_RDONLY); // 以只读方式打开命名管道文件
    if (rfd < 0)
    {
        cerr << "打开命名管道文件失败,错误码:" << errno << "错误信息" << strerror(errno) << endl;
        return 1;
    }
    // 如果我们的写入端(客户端)没打开,先打开读端(服务端),open时就会阻塞,直到把写入端(客户端)打开,open函数才会返回。
    cout << "打开命名管道文件成功" << endl;
    char buffer[1024]; // 缓冲区
    while (true)
    {
        ssize_t n = read(rfd, buffer, sizeof(buffer) - 1); // 返回读取数据长度
        if (n > 0)
        {
            buffer[n] = 0;
            cout << "客户端说:" << buffer << endl;
        }
        else if (n == 0)
        {
            cout << "客户端退出,此服务端也退出" << endl;
            break;
        }
        else
        {
            cerr << "从客户端获取数据失败,错误码:" << errno << "错误信息" << strerror(errno) << endl;
            break;
        }
    }
    close(rfd);
    return 0;
}